/**
 *
    算法描述：先排序，然后去重
    解决所需数据结构+算法：数组 + 快排
**/
#include<iostream>
#include<cstring>
using namespace std;

void qsort(int a[], int x, int y) {
    if(x >= y) return;
    int l = x, r = y;
    int q = a[l];
    while(l < r) {
        while(l<r && a[r]>=q) r--;
        if(l<r) a[l] = a[r];
        while(l<r && a[l]<=q) l++;
        if(l<r) a[r] = a[l];
    }
    a[l] = q;
    qsort(a, x, l-1);
    qsort(a, r+1, y);
}

int main() {
    int n, a[110];
    memset(a, 0, sizeof(a));
    scanf("%d", &n);
    int size = n; // 去重后数组长度
    for(int i=1; i<=n; i++)  scanf("%d", &a[i]);
    qsort(a, 1, n);

    for(int i=1; i<=n; i++) if(a[i]==a[i-1]) size--;

    printf("%d\n", size);
    for(int i=1; i<=n; i++)
        if(a[i] != a[i-1])   printf("%d ", a[i]);

    return 0;
} 